1. Field of the Invention
The present invention relates to computer resource distributing method and system and, more particularly, to computer resource distributing method and system for distributing processes to a plurality of computers which are connected in a network.
2. Description of the Related Art
A computer system is known in which processes and files are distributed to a multiplicity of computers which are connected in a network such as a LAN (Local Area Network) so that each computer executes the allotted process and controls the allotted file. In such a conventional computer system, the actual amount of processing and the actual processing time (CPU time) are hardly taken into consideration at the time of allotting processes to the computers, or even if they are taken into consideration, they are individually judged by the operator or the like. When processes are distributed to a multiplicity of computers, the CPU speed (processing speed) and the CPU usage (CPU load) of each computer are not taken into consideration, either. In addition, in most cases, when a plurality of processes which are different in the amount of processing per unit time are executed in parallel in a pipeline mode, the processes are executed in parallel by the respective computers to which the processes are distributed without taking the difference in the amount of processing per unit time into consideration. For this reason, it is impossible to uniformly allot processes to a multiplicity of computers, so that the throughput of the total system is lowered and it is impossible to obtain the result of processes in a short time.
Therefore there is a strong demand for a computer resource distributing system which enables a multiplicity of processes which are different in the amount of processing per unit time to be executed with efficiency in parallel by a multiplicity of computers having different processing times, and a computer resource distributing system which is capable of dynamically distributing a multiplicity of processes to a multiplicity of computer for the purpose of parallel processing with the CPU speed and the CPU usage of each computer taken into consideration.
In order to dynamically distribute a multiplicity of processes to a multiplicity of computers with the CPU speed and the CPU usage of each computer taken into consideration, it is necessary to inform the computer (server), which controls the distribution of the processes, about the situation of the CPU of each computer. As a method of supplying the data on the situations of the respective CPUs, the following three methods will be considered. A first method is a method of frequently supplying the data at a short interval of communication. A second method is a method of supplying the data at a long interval of communication, and a third method is a method of frequently supplying the data when the situation of a CPU is changing while supplying the data at a long interval when the situation of a CPU is stable. According to the first method, although the maintenance of the accurate data is possible, since the number of times of communication is large, the overhead bits for processing the received signals and the ratio of occupation of the communication path increase, there is a fear of lowering the communication efficiency of the other data. According to the second method, although the number of times of communication is reduced, it is impossible to detect a rapid change of the situation of a CPU. According to the third method, although the number of times of communication is reduced when the situation of each CPU is stable, when it is unstable, the number of times of communication inconveniently increases in the same way as in the first method.
In order to dynamically distribute a multiplicity of processes to a multiplicity of computers with the situation of the respective CPUs taken into consideration, it is necessary to take the following facts into consideration: (1) that the situations of the CPUs, including a breakdown of a host, dynamically change; (2) that a wide variety of computers are connected to each other; and (3) that there may be delay in transmitting the data on the situation of a CPU. When the situation of a CPU changes, it is impossible to secure a predetermined amount of resource in advance and it is difficult to collect the data on the situation of the CPU which changes with time. Therefore, there is a possibility that the situation of a CPU changes after a process is allotted to the CPU, so that the end of the processing is delayed. When a wide variety of computers are connected to each other, there is a great difference in performance among the CPUs or the like. In addition, it is difficult to collect the data on the situation of each computer, so that appropriate allotment of processes is impossible and there may be delay in executing the allotted process. When there is delay in supplying the data on the situation of a CPU, the same process may be allotted to a plurality of computers. In order to completely avoid this phenomenon, a synchronous process among all the CPUs is necessary, which makes the structure of the system complicated and raises the cost.
In the conventional computer system, however, the above-described facts (1) to (3) are not taken into consideration, so that it is difficult to collect accurate data on the situation of each computer and accurate allotment of processes is impossible.